package com.cyou.qb.common.service;

import java.util.Date;
import java.util.List;

import com.cyou.nad.datastore.query.JdbcPage;
import com.cyou.qb.common.domain.BlackList;
import com.cyou.qb.service.BaseService;

public interface BlackListService extends BaseService {
	/**
	 * <p>根据用户中心id和通行证以及当前时间判断是否处于黑名单</p>
	 * @author zoudongchao
	 * @param passport	通行证
	 * @param curr	当前时间
	 * @return 所有对该通行证施加的有效封禁记录
	 */
	public List<BlackList> findBlackList(String passport, Date now);
	
	/**
	 * 查询出当前有效的黑名单，黑名单的结束时间> now
	 * @return
	 */
	public List<BlackList> findAllValidBlackList();
	
	
	/**
	 * <p>保存黑名单</p>
	 * @param uCenterId 用户中心id
	 * @param passport	通行证
	 * @param nickname	昵称
	 * @param start		开始时间
	 * @param end		结束时间
	 * @param forbidden	禁止规则
	 * @param memo		memo
	 * @return	插入数据的条数
	 */
	public int saveBlackList(int uCenterId, String passport, String nickName, Date start, Date end, String forbidden, String memo);
	
	/**
	 * <p>分页查询黑名单</p>
	 * jdbc查询
	 * @param passport
	 * 			通行证
	 * @param nickname
	 * 			昵称
	 * @param pageNo
	 * 			当前页码
	 * @param pageSize
	 * 			分页大小
	 * @return	分页查询结果
	 */
	public JdbcPage findPageQueryBlackList(String passport, String nickname, int pageNo, int pageSize);

	
	/**
	 * <p>删除黑名单</p>
	 * @param blackListId 黑名单Id
	 */
	public void removeBlackList(int blackListId) throws Exception;
}
